package Negocio;

import java.util.ArrayList;
import javax.persistence.*;
import DTO.TallerOficialVO;
import SRV.DireccionSRV;
import SRV.FacturaProveedorSRV;

@Entity
@DiscriminatorValue("tallerOficial")
public class TallerOficial extends Proveedor
{
	public TallerOficial(long cuit, String nombre, Direccion direccion) 
	{
		super(cuit, nombre, direccion);
	}
	
	public TallerOficial() {}
	
	public TallerOficial toBusiness(TallerOficialVO taller){
	    Direccion direccion = new Direccion();
	    DireccionSRV daoDir =  new DireccionSRV();
	    direccion = daoDir.getDireccion(taller.getDireccion());
	    
	    TallerOficial devuelto = new TallerOficial(taller.getCuit(), taller.getNombre(), direccion);
	    
	    FacturaProveedor factura = new FacturaProveedor();
	    FacturaProveedorSRV daoFact = new FacturaProveedorSRV();
	    
	    for (Integer idAux : taller.getFacturas()){
	    	factura = daoFact.getFacturaProvvedor(idAux);
	    	devuelto.agregarFactura(factura);
	    }
	    return devuelto;
	}

	public TallerOficialVO toVO(){
	    ArrayList<Integer> facturasVO = new ArrayList<Integer>();
		    for (FacturaProveedor aux : getFacturas()){
			facturasVO.add(aux.getIdFacturaProveedor());
	    }
	    
		    TallerOficialVO agenteVO =  new TallerOficialVO(getCuit(), this.getNombre(), this.getDireccion().getIdDireccion(), facturasVO);
	    return agenteVO;
	}
	
	public boolean esCarrier(){
		return false;
	}
	
	public boolean esTallerGeneral(){
		return false;
	}
	
	public boolean esTallerOficial(){
		return true;
	}
	
	public boolean esAgenteOficial(){
		return false;
	}
	
	public boolean esEmpresaSeguros(){
		return false;
	}
	
	public boolean esEmpresaSeguridad(){
		return false;
	}
}
